1. Field of the Invention
The present invention relates to raster image processing, and more specifically to a method and apparatus for generating images quickly based on the information specified by conventions such as page description language (PDL).
2. Related Art
Raster image processing generally refers to processing data representing several objects (e.g., fonts, images or trapezoids) to generate an image (“target image”) for reproduction on an output device. The target image is typically generated in the form of a bit map. The bit map is then used to reproduce the image on output devices such as printers.
The details of objects (object models) and the specific manner in which the objects are to be displayed are represented according to various conventions (e.g., page description language) as is well known in the relevant arts. Thus, the representation is examined to determine the specific objects to be included in the raster data to be finally sent to an output device, and the corresponding task is commonly referred to as interpretation.
Based on the output of interpretation, the data representing each object is processed to generate the image (e.g., bit map of a page) specified by the page description language. The corresponding processing may be referred to as ‘rendering’ of the image. The output data generated by rendering is usually device independent and the data is processed (“screening”) further to generate the image in a format (e.g., in tonal levels supported by the output device) which can be reproduced by a corresponding output device.
The tasks of rendering and/or screening typically require extensive data transfers and/or processing. As a result, the rate at which images are generated may be determined by the efficiency of the rendering task and/or screening task.
Many times generating the rasterized image is the bottleneck in the overall process of reproducing an image. The bottleneck is particularly noticeable, for example, when high resolution color images are rasterized for printing on color printers, even when mechanical (i.e., internal to printers) components are not felt to be the bottleneck. Accordingly, there has been recognized a need to increase the throughput performance of the rendering task.
In one prior approach known as back-end screening, the output of the rendering task (“map”) is stored in a contone buffer. A screening task then retrieves the data in the contone buffer and generates the image in a suitable format for sending to the output device.
In another approach known as integrated screening, the contone buffer may be eliminated and a pipeline (usually via a memory) may be setup between the rendering task and the screening task. The throughput performance of the overall raster image processing may be enhanced due to the use of the pipeline.
However, the throughput performance of pipeline screening approach may be worse than that of the back-end screening in some circumstances, particularly when the same pixel of a target image is painted multiple times. Such a need to paint multiple times may occur, for example, when a page description language contains multiple overlapping objects and each object is rendered independently as is well known in the relevant arts.
While the above description is provided with reference to back-end screening and pipeline screening, it should be understood that any specific approach may perform better (than another approach) in some situations and worse in some others. Accordingly, what is needed is a method and apparatus which renders images efficiently such that the images can be generated at a high rate.